home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir26 / epi601_3.zip / FILES11.EXE / PERSON.PGM < prev    next >
Text File  |  1994-08-22  |  9KB  |  240 lines

  1. *================================== PERSON.PGM ===============================
  2. *    Executive Information System Demo: updating person data ...
  3. *
  4. * Epi Info program that reads communicable disease surveillance files, 
  5. * produces hypertext tables of disease by various demographics variables. 
  6. *
  7. * READS             : GEPIXX  .REC x 2
  8. * USES              : PERSON  .RPT
  9. * GENERATES/UPDATES : PERSON  .TXT
  10. *                     PERSON  .HLP 
  11. *
  12. * LAST UPDATE 01/18/94 Denis Coulombier
  13. *============================================================================
  14. *=========================== GLOBAL SECTION =================================
  15. SET IGNORE=OFF SPLIT=OFF DASH=OFF NOECHO = ON COLOR = 31 30 112
  16. CLS
  17. *--------------- Global variables declaration ------------------
  18. DEFINE CURYEAR    ##    GLOB 
  19. DEFINE PREVYEAR   ##    GLOB
  20. DEFINE NBWEEEK    ##    GLOB 52
  21. IMMEDIATE CURYEAR  = SYSTEMDATE[7,2]
  22. IMMEDIATE PREVYEAR = CURYEAR -1
  23. DEFINE WKTHISYEAR ##    GLOB 52
  24. DEFINE NBWEEK     ##    GLOB 52
  25. DEFINE CURWEEK    ##    GLOB
  26.  
  27. * CURYEAR represents the current year. 
  28. * WKTHISYEAR is the number of MMWRWK in 94 (52). Some years may require 53.
  29. * NBWEEK stands for the number of past weeks included in the report
  30. * Change either values to customize
  31.  
  32. READ GEPI@CURYEAR GEPI@PREVYEAR
  33. * Read 2 years of data to extract last 52 weeks.
  34.  
  35. DEFINE DUMMY   ## 
  36. IF YR = CURYEAR THEN DUMMY = MMWRWK + WKTHISYEAR ELSE DUMMY = MMWRWK
  37. * Start week number with 1st week of PREVYEAR and 
  38. * add WKTHISYEAR if year = CURYEAR
  39.  
  40. IF (YR=CURYEAR) AND (MMWRWK > CURWEEK) THEN CURWEEK = MMWRWK
  41. * Takes the largest MMWRK of current week and stores it in CURWEEK
  42. *--------------------------- Process week numbering -------------------------
  43. GOTO PROG_SCR
  44. ECHO
  45. ECHO                   Current dataset:  GEPI@CURYEAR, GEPI@PREVYEAR
  46. ECHO
  47. ECHO             Calculating the last MMWRWK entered in 19@CURYEAR             
  48. ECHO             and numbering past 52 weeks
  49. ECHO
  50. SET NOECHO=ON
  51. PROCESS
  52. CLS
  53. * Equivalent of LIST /NOECHO in previous versions of Epi Info
  54. SELECT
  55. SELECT DUMMY >= (CURWEEK-NBWEEK)
  56.  
  57.  
  58. RELATE EVENT DISEASES
  59. * Get decent disease names
  60.  
  61. DEFINE AGEGRP _____
  62. RECODE AGE TO AGEGRP   0-9="00·09",   10-14="10·14", 15-19="15·19", \
  63.                      20-24="20·24", 25-29="25·29", 30-34="30·34", \
  64.                      35-44="35·44", 45-98="45·UP", 99="Age·U"
  65. IF AGE =. THEN AGEGRP = "Age·Un"
  66. IF AGETYPE > "1" AND AGETYPE < "6" THEN AGEGRP = "00·09"
  67. IF AGETYPE = "9"  THEN AGEGRP = "Age·Un"
  68.  
  69. RELATE RACE RACECO
  70. * get decent race labels
  71.  
  72. RECODE RACENAME "UNKNOWN",.="UNKNOWN"
  73. RECODE RACE U,.=Ukn A=Asian B=Black N=Nativ O=Other W=White
  74.  
  75. DEFINE SEXNAME __________
  76. RECODE SEX U,.="Sex·Un" M="Male" F="Female"  
  77. SELECT DISEASE <>.
  78. * get decent sex labels for table
  79.  
  80. DEFINE VAR1     _______________
  81. DEFINE VAR2     _______________
  82. DEFINE VAR3     _______________
  83. * Variable that are used in the generic PERSON.RPT
  84. * See the #USES VAR1 VAR2 VAR3
  85. * This allow to have one file for generating the table,
  86. * to which different variables are passed
  87.  
  88. DEFINE VAR1NAME _______________ GLOB
  89. DEFINE VAR2NAME _______________ GLOB
  90. DEFINE VAR3NAME _______________ GLOB
  91. * Label corresponding to the variables 1, 2, & 3
  92. * Used for defining hypertext labesl allowing navigation from
  93. * one table to another
  94.  
  95. DEFINE HEADTEXT ____________________ GLOB
  96. * Header of the column in the table
  97.  
  98. ERASE PERSON.TXT
  99. ROUTE PERSON.TXT
  100. SET PAGE = 132,132
  101.  
  102. TYPE ".TOPIC INDEX\n\n"
  103. TYPE "~This report displays tables of disease by age, sex and race. ~\n\n"
  104. TYPE "It reflects data from the ~past 52 weeks~, ending with week ~@CURWEEK ~of ~19@CURYEAR ~\n"
  105. TYPE "It was compiled on @SYSTEMDATE.\n\n"
  106. TYPE "Select one highlighted set of tables:\n\n"
  107. TYPE "        «   Disease by age, for each sex         |SEX»\n\n"
  108. TYPE "        «   Disease by sex, for each race        |RACE»\n\n"
  109. TYPE "        «   Disease by race, for each agegroup   |AGEGROUP»\n\n"
  110. TYPE "        «   Agegroup by sex for each disease     |DISEASE»\n\n\n"
  111. TYPE "You can print any table by pressing <F5> or copy any block to the clipboard\n"
  112. TYPE "through the COPY command of the EDIT menu.\n"
  113. * Header of the hyper text file
  114.  
  115. * Table for each Sex, Age by disease
  116. VAR1               = SEX
  117. IMMEDIATE VAR1NAME ="Sex"
  118. VAR2               = AGEGRP
  119. IMMEDIATE VAR2NAME ="Agegroup"
  120. VAR3               = DISEASE
  121. IMMEDIATE VAR3NAME ="Disease"
  122. IMMEDIATE HEADTEXT ="Disease / Agegroup " 
  123. * Sets criteria for first table
  124.  
  125. GOTO PROG_SCR
  126. ECHO                   Current dataset:  GEPI@CURYEAR, GEPI@PREVYEAR
  127. ECHO   Generating:
  128. ECHO
  129. ECHO   Table of @VAR3NAME by @VAR2NAME
  130. ECHO   Stratified on @VAR1NAME
  131. ECHO   ~Last @NBWEEK weeks, up to MMWR Week @CURWEEK of 19@CURYEAR.~
  132. ECHO             
  133. SET NOECHO=ON
  134. REPORT PERSON
  135. * Run first table
  136.  
  137. * Table for each race, Sex by disease
  138. VAR1               = RACENAME
  139. IMMEDIATE VAR1NAME ="Race"
  140. VAR2               = SEX
  141. IMMEDIATE VAR2NAME ="Sex"
  142. VAR3               = DISEASE
  143. IMMEDIATE VAR3NAME ="Disease"
  144. IMMEDIATE HEADTEXT ="Disease / Sex      " 
  145. * Set criteria for second table
  146.  
  147. GOTO PROG_SCR
  148. ECHO                   Current dataset:  GEPI@CURYEAR, GEPI@PREVYEAR
  149. ECHO   Generating:
  150. ECHO
  151. ECHO   Table of @VAR3NAME by @VAR2NAME
  152. ECHO   Stratified on @VAR1NAME
  153. ECHO   ~Last @NBWEEK weeks, up to MMWR Week @CURWEEK of 19@CURYEAR.~
  154. ECHO             
  155. SET NOECHO=ON
  156. REPORT PERSON
  157. * Run second table
  158.  
  159. * Table for each disease, Sex by age
  160. VAR1               = DISEASE
  161. IMMEDIATE VAR1NAME ="Disease"
  162. VAR2               = SEX
  163. IMMEDIATE VAR2NAME ="Sex"
  164. VAR3               = AGEGRP
  165. IMMEDIATE VAR3NAME ="Agegroup"
  166. IMMEDIATE HEADTEXT = "Agegroup / Sex     " 
  167. * Set criteria for third table
  168.  
  169. GOTO PROG_SCR
  170. ECHO                   Current dataset:  GEPI@CURYEAR, GEPI@PREVYEAR
  171. ECHO   Generating:
  172. ECHO
  173. ECHO   Table of @VAR3NAME by @VAR2NAME
  174. ECHO   Stratified on @VAR1NAME
  175. ECHO   ~Last @NBWEEK weeks, up to MMWR Week @CURWEEK of 19@CURYEAR.~
  176. ECHO             
  177. SET NOECHO=ON
  178. REPORT PERSON
  179. * run third table
  180.  
  181. * Table for each disease, Sex by age
  182. VAR1               = AGEGRP
  183. IMMEDIATE VAR1NAME ="Agegroup"
  184. VAR2               = RACE
  185. IMMEDIATE VAR2NAME ="Race"
  186. VAR3               = DISEASE
  187. IMMEDIATE VAR3NAME ="Disease"
  188. IMMEDIATE HEADTEXT = "Disease / Race     "
  189. * Set criteria for third table
  190.  
  191. GOTO PROG_SCR
  192. ECHO                   Current dataset:  GEPI@CURYEAR, GEPI@PREVYEAR
  193. ECHO   Generating:
  194. ECHO
  195. ECHO   Table of @VAR3NAME by @VAR2NAME
  196. ECHO   Stratified on @VAR1NAME
  197. ECHO   ~Last @NBWEEK weeks, up to MMWR Week @CURWEEK of 19@CURYEAR.~
  198. ECHO             
  199. SET NOECHO=ON
  200. REPORT PERSON
  201. * run fourth table
  202.  
  203. ROUTE SCREEN
  204. READ STATUS
  205. IF REPORTCODE = 2 THEN UPDATEDATE = SYSTEMDATE
  206. IF REPORTCODE = 2 THEN UPDATETIME = SYSTEMTIME
  207. ERASE ~.REC
  208. ROUTE ~.REC
  209. WRITE RECFILE REPORTNAME REPORTCODE UPDATEDATE UPDATETIME
  210. ROUTE SCREEN
  211. READ ~.REC
  212. ERASE STATUS.REC
  213. CLOSE ~.REC
  214. RENAME ~.REC STATUS.REC
  215. ERASE ~.REC
  216. QUIT
  217.  
  218. *========================= Sub routine: PROG_SCR ============================= 
  219. :PROG_SCR
  220. CLS
  221. SET NOECHO=OFF
  222. ECHO ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
  223. ECHO ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
  224. ECHO ▓▓▓▓▓▓▓╔════════════════════════════════════════════════════════════════╗▓▓▓▓▓▓
  225. ECHO ▓▓▓▓▓▓▓║                                                                ║░▓▓▓▓▓
  226. ECHO ▓▓▓▓▓▓▓║                    N E T S S    R E P O R T S                  ║░▓▓▓▓▓
  227. ECHO ▓▓▓▓▓▓▓║                                                                ║░▓▓▓▓▓
  228. ECHO ▓▓▓▓▓▓▓╠════════════════════════════════════════════════════════════════╣░▓▓▓▓▓
  229. ECHO ▓▓▓▓▓▓▓║                                                                ║░▓▓▓▓▓
  230. ECHO ▓▓▓▓▓▓▓║     »  Please be patient ........                              ║░▓▓▓▓▓
  231. ECHO ▓▓▓▓▓▓▓║                                                                ║░▓▓▓▓▓
  232. ECHO ▓▓▓▓▓▓▓║     »  Running report PERSON.PGM                               ║░▓▓▓▓▓
  233. ECHO ▓▓▓▓▓▓▓║                                                                ║░▓▓▓▓▓
  234. ECHO ▓▓▓▓▓▓▓╚════════════════════════════════════════════════════════════════╝░▓▓▓▓▓
  235. ECHO ▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓▓
  236. ECHO ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
  237. ECHO ═══════════════════════════════════════════════════════════════════════════════
  238. RETURN
  239. *====================== End Sub routine: PROC_SCR ========================== 
  240.